package com.ysy.config;

import com.ysy.filter.UserLoginContextFilter;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;


/**
 * 使用写法1（直接返回Filter）的情况：
 * 当你的Filter不需要特殊配置
 * 当Filter顺序不重要
 * 当需要拦截所有请求时
 *      @Bean
 *     public UserLoginContextFilter userLoginContextFilter(){
 *         return new UserLoginContextFilter();
 *     }
 *
 * 使用写法2（FilterRegistrationBean）的情况：
 * 需要精确控制Filter的执行顺序
 * 需要指定特定的URL匹配模式
 * 需要配置初始化参数
 * 需要动态启用/禁用Filter
 */
@AutoConfiguration
public class UserLoginFilterAutoConfiguration {

    @Bean
    public FilterRegistrationBean<UserLoginContextFilter> filterFilterRegistrationBean(){
        UserLoginContextFilter userLoginContextFilter = new UserLoginContextFilter();
        return new FilterRegistrationBean<>(userLoginContextFilter);
    }
}
